// ProductAdapter.java
package com.jlnk.androidfmc.adapter;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.jlnk.androidfmc.R;
import com.jlnk.androidfmc.entity.Product;
import com.squareup.picasso.Picasso;

import java.util.List;
import java.util.Locale;

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ProductViewHolder> {

    private List<Product> productList;
    public interface OnProductClickListener {
        void onProductClick(View view, Product product);
    }
    private OnProductClickListener listener; // 定义一个成员变量来保存点击事件的监听器

    public ProductAdapter(List<Product> productList) {
        this.productList = productList;
    }

    // ... onCreateViewHolder 和 getItemCount 方法 ...

    @NonNull
    @Override
    public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_product, parent, false);
        return new ProductViewHolder(view);
    }

    // 在 ProductAdapter.java 中
    @Override
    public void onBindViewHolder(ProductViewHolder holder, int position) {
        Product product = productList.get(position);
        holder.textViewProductName.setText(product.getName());
        holder.textViewProductPrice.setText(String.format(Locale.getDefault(), "¥%.2f", product.getPrice()));

        // 确保 imagePath 是从数据库中正确获取的，并且是完整的文件路径
        String imagePath = product.getImagePath();
        // 使用 Picasso 加载本地图片文件
        Picasso.get().load("file://" + imagePath).into(holder.imageViewProduct);
        // 在 ProductAdapter 中的 onBindViewHolder 方法
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 当 item 被点击时调用监听器的 onProductClick 方法
                listener.onProductClick(v, productList.get(holder.getAdapterPosition()));
            }
        });
    }
    // 提供一个公开的方法来设置点击事件的监听器
    public void setOnProductClickListener(OnProductClickListener listener) {
        this.listener = listener;
    }
    @Override
    public int getItemCount() {
        return productList.size();
    }

    static class ProductViewHolder extends RecyclerView.ViewHolder {
        ImageView imageViewProduct;
        TextView textViewProductName;
        TextView textViewProductPrice;

        ProductViewHolder(View itemView) {
            super(itemView);
            imageViewProduct = itemView.findViewById(R.id.imageViewProduct);
            textViewProductName = itemView.findViewById(R.id.textViewProductName);
            textViewProductPrice = itemView.findViewById(R.id.textViewProductPrice);}

    }

    // 在 ProductAdapter.java 中添加
    public void setProductList(List<Product> productList) {
        this.productList = productList;
    }
}